The Global Positioning System (GPS) is a satellite-based location system. In the GPS, several satellites orbiting the earth provide signal codes that are detected by receivers. The receivers use the codes to lock onto the satellite signal. The receiver then measures the time of arrival of the satellite signal against an internal clock, which indicates a delay from the satellite. Such delays are determined for at least four different satellites. Those delays translate to distances. Because the distances to each of four satellites are known, and because the position of the satellites are known, the X, Y, and Z coordinates of the user may be calculated, as well as the user's clock error. This method is known as pseudo-ranging, and systems other than GPS use similar technology.
The delay between transmission of a satellite and reception by a receiver is obtained by causing the receiver to latch onto a repetitive code of a particular satellite. To this end, the receiver generates the code of each satellite in a repetitive pattern and then, for a particular satellite, tries to line up the internally generated code with the received code from the satellite. To “line up” the internally generated code, the internally generated code sequence must be delayed by some amount. This delay provides the time measurement from the internal clock, Codesat1(t)=Coderec(t+δ1), where δ1 is a delay value. The baseband signal Code(t) can take values of +1 or −1 and is generated by a known algorithm. By aligning internal codes of other satellites with corresponding internal codes, other delay values may be obtained. Thus, for three other satellites, delay values δ2, δ3, and δ4 may be generated. Then, by obtaining the position information for those satellites (xj, yj, zj) for j={1, 2, 3, 4}, a system of equations may be set up to determine the location of the receiving device.
The system of equations is derived from the equation for the distance between a satellite and the receiver in terms of delay, which may be expressed as: Distance=δj*C (speed of light). However, the measured delay does not provide an absolute delay value because the clock in the receiver is not necessarily synchronized to the satellites, which are synchronized together and to a master clock on the ground. So the actual distance between a satellite n and the receiver is the measured delay δj, plus a receiver clock offset Toff, times the speed of light. Thus, the following system of equations can be set up:(δ1+Toff)*C=[(x1−xr)2+(y1−yr)2+(z1−zr)2]1/2 (δ2+Toff)*C=[(x2−xr)2+(y2−yr)2+(z2−zr)2]1/2 (δ3+Toff)*C=[(x3−xr)2+(y3−yr)2+(z3−zr)2]1/2 (δ4+Toff)*C=[(x4−xr)2+(y4−yr)2+(z4−zr)2]1/2 
The above four equations amount to four equations with four unknown variables, which may then be solved for the receiver position xr, yr, zr, as well as the offset of the receiver clock Toff. Because the speed of light is 286,000 miles per second, even a small discrepancy in a delay measurement δj that is used to compute the distance from the distance equation already noted, can result in significant inaccuracy.
Accurate alignment of the internal and external codes to get a precise delay number for position calculation is important. To facilitate accurate alignment, the acquisition code sequence, known in the art as the C/A code, is 1023 bits and repeated periodically every 1 millisecond. By superimposing the internal code over the received code for multiple instances of the code, a correlation technique may be used to filter out noise present in the signal. As the number of 1 millisecond periods used for correlation increases, the ability of the receiver to acquire weak signals for position calculation increases.
The practical number of subsequent sequences of the C/A code that may be used is hindered, however, by the fact that the C/A code is in fact superimposed over another signal, referred to as the data signal, which has a pulse width of 20 milliseconds. The data signal contains the time and location information for the satellite, among other things. Before the signal is acquired, the data signal is unknown to the receiver, and appears as a random signal. Because the receiver does not know the data signal, the receiver does not know the effects of the data signal on the C/A sequences. Changes in the data signal from a +1 to a −1 value reverse the sign of a portion of the C/A sequences. Moreover, although there are 20 repetitions of the C/A sequence for every data signal value, the receiver does not have a priori knowledge of when the transitions of the data signal occur. Accordingly, the imposition of the data signal makes the use of multiple C/A sequences to achieve acquisition of the C/A code for weak GPS signals difficult.
Another problem for signal acquisition arises from the line of sight acceleration of the receiver relative to the satellite as it attempts to acquire a signal from a positioning satellite. If the receiver is accelerating, the Doppler shift changes with a rate that depends on the relative line of sight between the satellite and the receiver. A change in the Doppler shift causes a change in the length of the C/A code duration. This rate of change in the Doppler shift affects the acquisition and the tracking of the signal from the positioning satellites. The situation in which an accelerating receiver acquires and tracks a positioning signal is sometimes called a high dynamic environment. What is needed is a receiver that better estimates the effect of a high dynamic environment on the acquisition and tracking of a positioning signal.